package socrates.ws;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import socrates.dto.ClaseDTO;
import socrates.dto.HorarioDTO;
import socrates.ws.RestClient.RequestMethod;

public class WSHorario {
	RestClient con;
	public WSHorario(String url, int userid,String dateInicio,String dateFin){
		con = new RestClient(url+"?CodAlumno="+userid+"&FechaInicio="+dateInicio+"&FechaFin="+dateFin);
	}
	
	public List obtener_horario(){
		List lstHorario = new ArrayList();
		String response;
		try {
			con.Execute(RequestMethod.GET);
			response = con.getResponse();
			
			JSONArray jarray = new JSONArray(response);
			SimpleDateFormat formatoDelTexto = new SimpleDateFormat("yyyyMMdd");
			SimpleDateFormat formatoDelHora = new SimpleDateFormat("HHmmss");
			
			for (int i = 0; i < jarray.length(); i++) {
				HorarioDTO objHorario = new HorarioDTO();
				JSONObject jsobject = jarray.getJSONObject(i); 
				
				objHorario.setCodigo_Alumno(jsobject.getInt("CodAlumno"));
				objHorario.setCodigo_dia(jsobject.getInt("CodDia"));
				String fecha = jsobject.getString("Fecha");
				objHorario.setFecha(formatoDelTexto.parse(fecha));
				
				JSONArray jsClase = jsobject.getJSONArray("lstClases");
				List <ClaseDTO> lstClase = new ArrayList();
				
				for(int j=0; j<jsClase.length();j++){
					ClaseDTO objClase = new ClaseDTO();
					JSONObject jsobjClase = jsClase.getJSONObject(j);
					
					objClase.setCodigo_Alumno(jsobjClase.getInt("CodAlumno"));
					objClase.setCodigo_Clase(jsobjClase.getInt("CodClase"));
					objClase.setFecha(formatoDelTexto.parse(jsobjClase.getString("Fecha")));
					objClase.setHora_Inicio(formatoDelHora.parse(jsobjClase.getString("HoraInicio")));
					objClase.setHora_Fin(formatoDelHora.parse(jsobjClase.getString("HoraFin")));
					objClase.setSalon(jsobjClase.getString("Salon"));
					objClase.setSeccion(jsobjClase.getString("Seccion"));
					objClase.setSede(jsobjClase.getString("Sede"));
					objClase.CodCurso = jsobjClase.getString("CodCurso");
					objClase.CursoNombre = jsobjClase.getString("CursoNombre");
					
					lstClase.add(objClase);
				}
				objHorario.setObjClase(lstClase);
				lstHorario.add(objHorario);
			}
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
		}
		
		return lstHorario;
	}
}
